/**
 * 解析URL参数并生成包含键值对的数组
 * @param url 可选参数，需要解析的URL，默认使用当前页面URL
 * @returns 参数数组，每个元素为 { key: string, value: string } 格式
 */
export function getUrlParams(url?: string): Array<{ key: string; value: string }> {
  // 默认使用当前页面URL
  const targetUrl = url || window.location.href;
  const paramsArray: Array<{ key: string; value: string }> = [];

  // 提取URL中的查询字符串部分
  const queryString = targetUrl.split('?')[1];
  if (!queryString) return paramsArray;

  // 分割参数对
  const paramPairs = queryString.split('&');

  // 遍历解析每个参数
  paramPairs.forEach(pair => {
    // 处理没有值的参数（如 ?name&age=30）
    const [key, value = ''] = pair.split('=');
    // 解码参数（处理中文和特殊字符）
    const decodedKey = decodeURIComponent(key);
    const decodedValue = decodeURIComponent(value);
    paramsArray.push({ key: decodedKey, value: decodedValue });
  });

  return paramsArray;
}

/**
 * 根据key获取URL参数中的对应值
 * @param key 需要查找的参数名
 * @param url 可选参数，需要解析的URL，默认使用当前页面URL
 * @returns 参数值，如果不存在则返回null
 */
export function getUrlParamValue(key: string, params: any): string | null {
  // 查找第一个匹配的key
  const param = params.find((item: { key: string; }) => item.key === key);
  // 返回对应的值或null
  return param ? param.value : null;
}

